/**
 * Beschreiben Sie hier die Klasse Windmessung.
 * 
 * @author christoph.stueber@mes-alsfeld.de
 * @version Schuljahr 2013/2014
 *          erstellt 14.03.2014
 *          geändert 14.03.2014
 */
public class Windmessung extends Thread
{

    /** */
    private double windGeschwindigkeit = 0;

    /** */
    private int windstufe = 0;

    /** */
    private boolean running = true;

    /** */
    private Steuerung st;

    /**
     * Konstruktor zum Erzeugen von Objekten der Klasse Windmessung;
     */
    public Windmessung(Steuerung st)
    {
        this.st = st;
    }
    
    /**
     * Get-Methode für Windstufe.
     * 
     * @return int windstufe
     */
    public int getWindstufe()
    {
        return windstufe;
    }

    /**
     * run-Methode des Threads.
     */
    public void run()
    {

        while (running)
        {
            windGeschwindigkeit = st.getPorts().readAnalog() / 10;
            int stufe = 0;
            if (windGeschwindigkeit < 4)
            {
                stufe = 1;
            }
            else if (windGeschwindigkeit < 16)
            {
                stufe = 2;
            }
            else if (windGeschwindigkeit < 24)
            {
                stufe = 3;
            }
            else
            {
                stufe = 4;
            }
            if (stufe != windstufe)
            {
                windstufe = stufe;
                st.schalten(windstufe);
                System.out.println("\n+++ Windstufe " + windstufe);
            }
            try
            {
                Thread.sleep(6000);
            } catch (InterruptedException ex)
            {
                System.err.println(ex.getMessage());
            }
        }
    }

    /**
     * beenden ist eine Methode zum sicheren Beenden des Threads
     */
    public void beenden()
    {
        running = false;
    }

}
